package com.tengju.bff.interfaces.covercharge.service;

import com.tengju.bff.interfaces.covercharge.dto.ChangeBalanceReqDTO;
import com.tengju.bff.interfaces.covercharge.dto.ChangeProfitDTO;
import com.tengju.bff.interfaces.covercharge.dto.ChangeProfitDetailDTO;
import com.tengju.bff.interfaces.covercharge.dto.ServiceDealResDTO;

/**
 * @author liang_shi
 * @date 2020/8/4 11:45
 * @description 收益结算服务
 */
public interface IProfitSettleService {

    /**
     * 幂等检查
     *
     * @param type     业务类型
     * @param uniqueId 幂等Id
     * @return 操作记录的状态
     */
    ServiceDealResDTO querySettleResultByUniqueId(String type, String uniqueId);

    /**
     * 创建操作记录
     *
     * @param type     类型
     * @param uniqueId 幂等Id
     */
    void createOperateRecord(String type, String uniqueId);

    /**
     * 更新操作记录
     *
     * @param uniqueId 唯一Id
     * @param status   状态
     * @param message  描述信息
     */
    void modifyOperateRecord(String uniqueId, Integer status, String message);


    /**
     * 处理存管账户信息
     */
    boolean dealAccountCoreSettle(String uniqueId, ChangeBalanceReqDTO balanceReqDTO, ServiceDealResDTO dealResDTO);


    /**
     * 处理服务费账户信息
     */
    boolean dealServiceCoreSettle(String uniqueId, ChangeProfitDTO changeProfit, ServiceDealResDTO dealResDTO);


    /**
     * 处理服务费账户信息
     */
    boolean dealServiceCoreSettleByDetail(String uniqueId, ChangeProfitDetailDTO changeProfit, ServiceDealResDTO dealResDTO);


}
